home *** CD-ROM | disk | FTP | other *** search
- #==============================================================================
- # bezier.test
- #------------------------------------------------------------------------------
- # Test of the Tcl SIPP Bezier commands.
- #------------------------------------------------------------------------------
- # Copyright 1992 Mark Diekhans
- # Permission to use, copy, modify, and distribute this software and its
- # documentation for any purpose and without fee is hereby granted, provided
- # that the above copyright notice appear in all copies. Mark Diekhans makes
- # no representations about the suitability of this software for any purpose.
- # It is provided "as is" without express or implied warranty.
- #------------------------------------------------------------------------------
- # $Id: bezier.test,v 2.0 1992/11/02 03:55:50 markd Rel $
- #==============================================================================
-
-
- if {[info procs test] == ""} {source testprocs.tcl}
-
- set teapotBodyVertices {
- {3.500000E-01 5.625000E-01 0.000000E+00}
- {3.343750E-01 5.953125E-01 0.000000E+00}
- {3.593750E-01 5.953125E-01 0.000000E+00}
- {3.750000E-01 5.625000E-01 0.000000E+00}
- {4.375000E-01 4.312500E-01 0.000000E+00}
- {5.000000E-01 3.000000E-01 0.000000E+00}
- {5.000000E-01 1.875000E-01 0.000000E+00}
- {5.000000E-01 7.500000E-02 0.000000E+00}
- {3.750000E-01 1.875000E-02 0.000000E+00}
- {3.750000E-01 0.000000E+00 0.000000E+00}}
- set teapotBodyCurves {
- {0 1 2 3}
- {4 4 5 7}
- {6 7 8 9}}
- set teapotHandleVertices {
- {-3.750000E-01 5.250000E-01 0.000000E+00}
- {-6.250000E-01 5.250000E-01 0.000000E+00}
- {-7.500000E-01 5.250000E-01 0.000000E+00}
- {-7.500000E-01 4.125000E-01 0.000000E+00}
- {-7.500000E-01 3.000000E-01 0.000000E+00}
- {-6.625000E-01 1.968750E-01 0.000000E+00}
- {-4.750000E-01 1.125000E-01 0.000000E+00}
- {-3.750000E-01 5.250000E-01 -7.500000E-02}
- {-6.250000E-01 5.250000E-01 -7.500000E-02}
- {-7.500000E-01 5.250000E-01 -7.500000E-02}
- {-7.500000E-01 4.125000E-01 -7.500000E-02}
- {-7.500000E-01 3.000000E-01 -7.500000E-02}
- {-6.625000E-01 1.968750E-01 -7.500000E-02}
- {-4.750000E-01 1.125000E-01 -7.500000E-02}
- {-4.000000E-01 4.687500E-01 -7.500000E-02}
- {-5.750000E-01 4.687500E-01 -7.500000E-02}
- {-6.750000E-01 4.687500E-01 -7.500000E-02}
- {-6.750000E-01 4.125000E-01 -7.500000E-02}
- {-6.750000E-01 3.562500E-01 -7.500000E-02}
- {-6.250000E-01 2.437500E-01 -7.500000E-02}
- {-5.000000E-01 1.875000E-01 -7.500000E-02}
- {-4.000000E-01 4.687500E-01 0.000000E+00}
- {-5.750000E-01 4.687500E-01 0.000000E+00}
- {-6.750000E-01 4.687500E-01 0.000000E+00}
- {-6.750000E-01 4.125000E-01 0.000000E+00}
- {-6.750000E-01 3.562500E-01 0.000000E+00}
- {-6.250000E-01 2.437500E-01 0.000000E+00}
- {-5.000000E-01 1.875000E-01 0.000000E+00}
- {-4.000000E-01 4.687500E-01 7.500000E-02}
- {-5.750000E-01 4.687500E-01 7.500000E-02}
- {-6.750000E-01 4.687500E-01 7.500000E-02}
- {-6.750000E-01 4.125000E-01 7.500000E-02}
- {-6.750000E-01 3.562500E-01 7.500000E-02}
- {-6.250000E-01 2.437500E-01 7.500000E-02}
- {-5.000000E-01 1.875000E-01 7.500000E-02}
- {-3.750000E-01 5.250000E-01 7.500000E-02}
- {-6.250000E-01 5.250000E-01 7.500000E-02}
- {-7.500000E-01 5.250000E-01 7.500000E-02}
- {-7.500000E-01 4.125000E-01 7.500000E-02}
- {-7.500000E-01 3.000000E-01 7.500000E-02}
- {-6.625000E-01 1.968750E-01 7.500000E-02}
- {-4.750000E-01 1.125000E-01 7.500000E-02}}
-
- set teapotHandlePatches {
- {{ 0 1 2 3} {35 36 37 38} {28 29 30 31} {21 22 23 24}}
- {{21 22 23 24} {14 15 16 17} { 7 8 9 10} { 0 1 2 3}}
- {{ 3 4 5 6} {38 39 40 41} {31 32 33 34} {24 25 26 27}}
- {{ 6 5 4 3} {13 12 11 10} {20 19 18 17} {27 26 25 24}}}
-
- #
- # Set up for tests.
- #
-
- test {bezier-1.1} {
- set shader1 [SippShaderBasic .6 .1 .4 {.8 .5 .2}]
- crange $shader1 0 5
- } 0 {shader}
-
- #
- # Test SippBezierCurve command.
- #
-
- test {bezier-2.1} {
- SippBezierCurve foo
- } 1 {wrong # args: SippBezierCurve resolution vertexlist curvelist shaderhandle [texture]}
-
- test {bezier-2.2} {
- SippBezierCurve 2 $teapotBodyVertices $teapotBodyCurves $shader1 foo baz
- } 1 {wrong # args: SippBezierCurve resolution vertexlist curvelist shaderhandle [texture]}
-
- test {bezier-2.3} {
- SippBezierCurve 2 $teapotBodyVertices $teapotBodyCurves $shader1 foo
- } 1 {expected one of "NATURAL", "CYLINDRICAL", "SPHERICAL", or "WORLD", got "foo"}
-
- test {bezier-2.4} {
- SippBezierCurve 2 $teapotBodyVertices $teapotBodyCurves $shader1 CYLINDRICAL
- } 1 {texture mapping CYLINDRICAL is not valid for this command}
-
- test {bezier-2.5} {
- SippBezierCurve 10 {1 2 3} $teapotBodyCurves $shader1
- } 1 {vertex or vector must be a list of three elements}
-
- test {bezier-2.6} {
- SippBezierCurve 10 $teapotBodyVertices {1 2 3} $shader1
- } 1 {list of vertex indices must have 4 indices}
-
- test {bezier-2.7} {
- SippBezierCurve aa $teapotBodyVertices $teapotBodyCurves $shader1
- } 1 {expected unsigned integer but got "aa"}
-
- test {bezier-2.8} {
- SippBezierCurve 10 $teapotBodyVertices \
- {{0 1 2 3}
- {4 4 5 7}
- {6 7 8 10}} $shader1
- } 1 {vertex index 10 out of range, expect: 0 .. 9}
-
- test {bezier-2.9} {
- catch {unset curve}
- set curve [SippBezierCurve 2 $teapotBodyVertices $teapotBodyCurves \
- $shader1]
- SippObjectDelete $curve
- crange $curve 0 5
- } 0 {object}
-
- test {bezier-2.10} {
- catch {unset curve}
- set curve [SippBezierCurve 2 $teapotBodyVertices $teapotBodyCurves \
- $shader1]
- SippObjectDelete $curve
- crange $curve 0 5
- } 0 {object}
-
- test {bezier-2.11} {
- catch {unset curve}
- set curve [SippBezierCurve 2 $teapotBodyVertices $teapotBodyCurves \
- $shader1 WORLD]
- SippObjectDelete $curve
- crange $curve 0 5
- } 0 {object}
-
- test {bezier-2.12} {
- catch {unset curve}
- set curve [SippBezierCurve 2 $teapotBodyVertices $teapotBodyCurves \
- $shader1 NATURAL]
- SippObjectDelete $curve
- crange $curve 0 5
- } 0 {object}
-
- #
- # Test SippBezierPatch commnand
- #
-
- test {bezier-3.1} {
- SippBezierPatch foo
- } 1 {wrong # args: SippBezierPatch resolution vertexlist patchlist shaderhandle [texture]}
-
- test {bezier-3.2} {
- SippBezierPatch 2 $teapotHandleVertices $teapotHandlePatches $shader1 foo baz
- } 1 {wrong # args: SippBezierPatch resolution vertexlist patchlist shaderhandle [texture]}
-
- test {bezier-3.3} {
- SippBezierPatch 2 $teapotHandleVertices $teapotHandlePatches $shader1 foo
- } 1 {expected one of "NATURAL", "CYLINDRICAL", "SPHERICAL", or "WORLD", got "foo"}
-
- test {bezier-3.4} {
- SippBezierPatch 2 $teapotHandleVertices $teapotHandlePatches $shader1 CYLINDRICAL
- } 1 {texture mapping CYLINDRICAL is not valid for this command}
-
- test {bezier-3.5} {
- SippBezierPatch 10 {1 2 3} $teapotHandlePatches $shader1
- } 1 {vertex or vector must be a list of three elements}
-
- test {bezier-3.6} {
- SippBezierPatch 10 $teapotHandleVertices {1 2 3} $shader1
- } 1 {matrix of vertex indices must have 4 list of vertex indices}
-
- test {bezier-3.7} {
- SippBezierPatch aa $teapotHandleVertices $teapotHandlePatches $shader1
- } 1 {expected unsigned integer but got "aa"}
-
- test {bezier-3.8} {
- SippBezierPatch 10 $teapotHandleVertices \
- {{{ 0 1 2 3} {35 36 37 38} {28 29 30 31} {21 22 23 42}}} $shader1
- } 1 {vertex index 42 out of range, expect: 0 .. 41}
-
- test {bezier-3.9} {
- catch {unset patch}
- set patch [SippBezierPatch 2 $teapotHandleVertices $teapotHandlePatches \
- $shader1]
- SippObjectDelete $patch
- crange $patch 0 5
- } 0 {object}
-
- test {bezier-3.10} {
- catch {unset patch}
- set patch [SippBezierPatch 2 $teapotHandleVertices $teapotHandlePatches \
- $shader1 WORLD]
- SippObjectDelete $patch
- crange $patch 0 5
- } 0 {object}
-
- test {bezier-3.11} {
- catch {unset patch}
- set patch [SippBezierPatch 2 $teapotHandleVertices $teapotHandlePatches \
- $shader1 NATURAL]
- SippObjectDelete $patch
- crange $patch 0 5
- } 0 {object}
-
- #
- # Test SippBezierFile command.
- #
-
- test {bezier-4.1} {
- SippBezierFile
- } 1 {wrong # args: SippBezierFile fileid resolution shaderhandle [texture]}
-
- test {bezier-4.2} {
- SippBezierFile stdout 5 $shader1 xxxn foo
- } 1 {wrong # args: SippBezierFile fileid resolution shaderhandle [texture]}
-
- test {bezier-4.3} {
- SippBezierFile stdout 5 $shader1 foo
- } 1 {expected one of "NATURAL", "CYLINDRICAL", "SPHERICAL", or "WORLD", got "foo"}
-
- test {bezier-4.4} {
- SippBezierFile stdout 5 $shader1 CYLINDRICAL
- } 1 {texture mapping CYLINDRICAL is not valid for this command}
-
- test {bezier-4.5} {
- SippBezierFile stdout 5 xxx
- } 1 {invalid shader handle: xxx}
-
- test {bezier-4.6} {
- SippBezierFile BADID 5 $shader1
- } 1 {bad file identifier "BADID"}
-
- test {bezier-4.7} {
- set fileHdl [open tpt_handle.bez r]
- SippBezierFile $fileHdl nnn $shader1
- close $fileHdl
- } 1 {expected unsigned integer but got "nnn"}
-
- test {bezier-4.8} {
- catch {unset bezier}
- set fileHdl [open tpt_handle.bez r]
- set bezier [SippBezierFile $fileHdl 5 $shader1]
- close $fileHdl
- SippObjectDelete $bezier
- crange $bezier 0 5
- } 0 {object}
-
- test {bezier-4.9} {
- catch {unset bezier}
- set fileHdl [open tpt_handle.bez r]
- set bezier [SippBezierFile $fileHdl 5 $shader1 WORLD]
- close $fileHdl
- SippObjectDelete $bezier
- crange $bezier 0 5
- } 0 {object}
-
- test {bezier-4.10} {
- catch {unset bezier}
- set fileHdl [open tpt_handle.bez r]
- set bezier [SippBezierFile $fileHdl 5 $shader1 NATURAL]
- close $fileHdl
- SippObjectDelete $bezier
- crange $bezier 0 5
- } 0 {object}
-
- #
- # Cleanup.
- #
-
- test {bezier-5.1} {
- SippShaderDelete $shader1
- } 0 {}
-
-
-